#include<iostream>
#include<io.h>
#include<stdlib.h>
#include<string.h>
#include<dirent.h>
#include<sys/stat.h>
#include<sys/types.h>
using namespace std;

int level=0;
void showDirStructure(char *folder)
{
   	level++;
	DIR *fd=opendir(folder);
	if(fd==NULL){
		cout<<"Can't open the fileFolder"<<endl;
		return ;
	}
	int index=0,i=0;
	for(i=0;i<=strlen(folder);i++)if(folder[i]=='/')index=i+1;
	for(i=1;i<level;i++)cout<<"  ";
	cout<<"+--"<<&(folder[index])<<endl;
	struct dirent *dir;
	struct stat statbuf;
	while((dir=readdir(fd))!=NULL){
		if(strcmp(dir->d_name,".")==0||strcmp(dir->d_name,"..")==0)continue;
	//	cout<<"jbj";
		char file_name[1024];
		sprintf(file_name,"%s/%s",folder,dir->d_name);
		
		stat(file_name,&statbuf);
		if(S_ISDIR(statbuf.st_mode)){
			showDirStructure(file_name);
			
		}
		else if(S_ISREG(statbuf.st_mode)){
			for(int i=0;i<strlen(dir->d_name);i++){
				if(dir->d_name[i]=='.'){
					index=i+1;break;
				}
				
			}
			if(strcmp(&(dir->d_name[index]),"jpg")==0||strcmp(&(dir->d_name[index]),"png")==0||strcmp(&(dir->d_name[index]),"bmp")==0){
					for(int i=0;i<level;i++){
						cout<<"  ";
					}
					cout<<"--"<<dir->d_name<<endl;
				}
				
		}
		
	}
	level--;
	closedir(fd);
}
int main(){
	char s[1024];
	cin>>s;
	showDirStructure(s);
	return 0;
} 
